package org.example.coursemangementserver.server.config;

import lombok.extern.slf4j.Slf4j;
import org.example.coursemangementserver.common.properties.AliOssProperties;
import org.example.coursemangementserver.common.utils.AliOssUtil;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类，用于创建AliOssutil对象
 * 配置类，即Spring工程启动时就会将该类的bean注入到容器之中
 */
@Configuration
@Slf4j
public class OssConfiguration {
    @Bean//当项目启动的时候会自动调用这个方法，将这个AliOssUtil类创建出来交给spring容器去管理
    @ConditionalOnMissingBean//保证整个Spring容器里面只有一个AliOssUtil对象
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传工具类对象：{}",aliOssProperties);
        return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());
        // 返回通过构造函数创建的AliOssUtil对象，这个对象将被注册为一个bean，并交给Spring容器进行管理。
    }
}
